#include "fenlistetotaldespaiements.h"
#include "ui_fenlistetotaldespaiements.h"

fenListeTotalDesPaiements::fenListeTotalDesPaiements(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::fenListeTotalDesPaiements)
{
    ui->setupUi(this);
    qsEuro = QApplication::translate(" ceci n a pas d importance", "\342\202\254", 0, QApplication::UnicodeUTF8);

    m_listePaiementModel = new ListePaiementModel();
    proxyModel = new MySortFilterProxyModel(this);
    proxyModelTypePaiement = new MySortFilterProxyModel(this);

    QStringList listeTypePaiement;
    listeTypePaiement << "Tous" << Paiement::ListeTypePaiement();
    ui->comboBox->addItems(listeTypePaiement);
    connect(ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(ChoixTypePaiement(int)));

}
fenListeTotalDesPaiements::~fenListeTotalDesPaiements()
{
    this->close();
}
void fenListeTotalDesPaiements::UpdateView()
{
    m_listePaiementModel->setListePaiement(maListePaiements);
//    ui->treeViewPaiements->resizeColumnsToContents();
    proxyModel->setDynamicSortFilter(true);
    proxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
    proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
    proxyModel->setFilterKeyColumn(-1);

    proxyModelTypePaiement->setSourceModel(m_listePaiementModel);
    proxyModelTypePaiement->setDynamicSortFilter(true);
    proxyModelTypePaiement->setSortCaseSensitivity(Qt::CaseInsensitive);
    proxyModelTypePaiement->setFilterCaseSensitivity(Qt::CaseInsensitive);

    proxyModelTypePaiement->setFilterKeyColumn(3);

    proxyModel->setSourceModel(proxyModelTypePaiement);
    proxyModel->setSortRole(Qt::UserRole);
    ui->treeViewPaiements->setModel(proxyModel);
    ui->treeViewPaiements->setSortingEnabled(true);
    ui->treeViewPaiements->setAlternatingRowColors(true);
    ui->treeViewPaiements->expandAll();
//    ui->treeViewPaiements->resizeColumnsToContents();
    connect(ui->filtreLineEdit, SIGNAL(textChanged(QString)), proxyModel, SLOT(setFilterRegExp(QString)));
}

void fenListeTotalDesPaiements::SetData(ListePaiementParProfEtEleve listePaiement)
{
    maListePaiements = listePaiement;
    UpdateView();
}
void fenListeTotalDesPaiements::ChoixTypePaiement(int i)
{
     i-= 1;
     QString filter = "";

    if (i > -1)
        filter = Paiement::TypePaiement(i);

    proxyModelTypePaiement->setFilterFixedString(filter);

    UpdateView();
}
